1. Technical Field
The present invention relates to a sound waveform synthesizer for synthesizing waveform data to produce a sound waveform, such as a musical sound or voice.
2. Background Art
Electronic music apparatuses having a sound generation system of waveform memory type (waveform table type) are known, which process waveform data as materials according to performance data to synthesize a musical sound waveform.
FIGS. 4(a), 4(b) and 4(c) are block diagrams showing some electronic music apparatuses having a waveform memory type sound generation system.
In FIG. 4(a), a CPU (Central Processing Unit) 102 for control of the sound generation, a work RAM (Random Access Memory) 103, and a sound generation LSI (Large Scale Integrated Circuit) 104 are connected to a CPU bus 101. The sound generation LSI 104 is connected to a waveform ROM (Read Only Memory) 106 via a waveform memory bus 105.
A processing program for operating the CPU 102 is loaded in the work RAM 103. On the other hand, the performance data (musical waveform control information) is inputted to the work RAM 103 through the CPU bus 101 from a keyboard or the like, not shown. The CPU 102 creates sound generation parameters (control parameters) based on the performance data, and outputs them to the sound generation LSI 104. The sound generation LSI 104 reads out waveform data as materials from the waveform ROM (Read Only Memory) 106 according to the sound generation parameters. Then the LSI processes the waveform data to synthesize a musical sound waveform. The synthesized musical sound waveform is converted to an analog signal by a CODEC (coder/decoder), not shown, to generate a musical sound signal.
As shown in FIG. 4(b), a DSP (Digital Signal Processor) 107 for sound generation may be used instead of the sound generation LSI.
The DSP is a microprocessor dedicated to digital signal processing. It features high-speed summation and multiplication operations. It can also replace the sound generation system with another system or upgrade it by changing the microprogram codes. The musical sound waveform synthesized by the DSP 107 is converted by the CODEC, not shown, to the analog signal so that the analog signal will be outputted.
The DSP 107 may be of the type that shares a bus (DSP bus 108) and a work RAM 110 between processed waveform data used in the signal processing and the signal processing program instructions.
However, since the CPU 102 and the DSP 107 both have a function for assigning bus access right, so-called arbitration function, they cannot share the bus.
It is generally known that a shared memory connects two buses as disclosed in Japanese patent laid-open application No. 6-59678. Therefore, a shared memory 109 is provided in FIG. 4(b), with the work RAM 110 connected to the DSP bus 108.
On the other hand, the waveform ROM 106 is scaled up to increase a capacity to store the waveform data enough to reproduce high-quality musical sound waveforms.
However, there is a cost limit for such a large-capacity waveform ROM to store waveform data for diverse tone colors of various musical instruments.
To solve this, there is yet another configuration as shown in FIG. 4(c), in which an HDD (Hard Disk Drive) 113 is connected to the CPU bus 101 through a HDC (Hard Disk Controller) 112, while using a waveform RAM 111.
In this case, the CPU 102 transfers waveform data from the HDD (Hard Disk Drive) 113 to the work RAM 103 prior to starting the music performance. Then the CPU 102 transfers and stores the waveform data into the waveform RAM 111. Practically, the CPU 102 accesses the HDD 113 to transfer the waveform data of the tone color of a required musical instrument from the HDD 113 to the waveform RAM 111 through the work RAM 103. However, when changing the tone color to another, waveform data of the tone color of another musical instrument needs to be transferred to the waveform RAM 111. This causes another problem that it takes time to change the waveform data. There is also a limit to the data size storable in the waveform RAM 111 at a reasonable cost.
Therefore, there is another method called sampler method. In the musical sound synthesis processing after starting the performance, waveform data necessary for musical sound synthesis is supplied one by one from the HDD 113 to the waveform RAM 111 through the work RAM 103. According to this system, users can access virtually unlimited amounts of waveform data. This system is implemented as a “sampler” program running on a personal computer.
However, since the latency from receiving a request to read waveform data to actual reading from the HDD 113 is too important to neglect, large amounts of waveform data necessary for musical sound synthesis need to be read out and prestored in the work RAM 103.
The CPU bus 101 is mainly used for sound generation parameter synthesis. This processing requires a relatively large-scale program with a complicated algorithm, the processing load of which is very high.
However, the CPU bus incorporated in the system is slower than CPU bus for a personal computer. Further, the speed of the CPU bus is just a fraction of the speed of the internal operation of the CPU. The CPU 102 is designed to use 70 to 80 percent of the data transfer capacity at worst to execute the command “fetch” at its busiest time.
Therefore, if too much of the data transfer capacity of the CPU bus 101 is taken up by the transfer of waveform data between the HDC 112 and the work RAM 103, the CPU 102 cannot provide enough computing power.
A musical sound data recording/reproducing apparatus is known as disclosed in Japanese patent laid-open application No. 6-51776, in which an HDD is connected to a bus other than a bus on the reproduction side and the CPU bus so that waveform data read out from the HDD will be transferred to the bus on the reproduction side through a shared buffer.
FIG. 5 is a block diagram showing such a conventional musical sound data recording/reproducing apparatus. In this configuration, other block for recording waveform data on the HDD is not shown.
A personal computer 121 and a reproduction control device 122 are connected via a serial cable. Further, the personal computer 121, the reproduction control device 122, and an HDD 123 are connected via SCSI (Small Computer System Interface) buses, respectively.
The personal computer 121 allows users to perform selection and setting operations on file names, and sends out information for specifying the location of the data file to the reproduction control device 122 via the serial cable.
The reproduction control device 122 reads out musical sound waveform data stored in the HDD 123 via the SCSI bus to reproduce the musical sound waveform data.
In the reproduction control device 122, a microcomputer consisting predominantly of a CPU 126, a RAM 127, and a ROM 128 are connected to a CPU bus 125. A serial input/output interface 124, a SCSI interface 129, a reproduction/transfer controller 130, and a sound generator 131 are also connected to the CPU bus 125. The operation of these components is controlled by the CPU 126.
The reproduction/transfer controller 130 is provided with a capture buffer 134. The capture buffer 134 is connected to the SCSI interface 129 through a waveform data bus 132, and to a reproduction buffer 135 through a bus 133.
The musical sound waveform data read out from the HDD 123 are stored in the capture buffer 134. After removing unnecessary header parts and rearranging the data, the capture buffer 134 transfers one block (16K words) of musical sound waveform data, a suitable unit for reproduction and reading, to the reproduction buffer 135 (two 4K words). The writing/reading operations of the capture buffer 134 are switched by a system clock pulse 1 or 0, respectively.
The reproduction sound generator 131 reads out and outputs one block of musical sound waveform data from the reproduction buffer 135 in response to a sampling clock. During this processing, the pitch of the read waveform can be controlled.
As disclosed in Japanese patent laid-open application No. 6-51776, such a configuration that the capture buffer 134 is provided between the waveform data bus 132 and the waveform reproduction bus 133 allows both of the buses to transfer musical sound waveforms independently of each other.
The transfer function disclosed in Japanese patent laid-open application No. 6-51776 is to read out and reproduce a predetermined block size of waveform data from the HDD 123.
In other words, Japanese patent laid-open application No. 6-51776 does not teach how each bus transfers waveform data read out from a storage with large latency such as the HDD 123 when the amount of waveform data necessary for musical sound waveform synthesis varies according to time-varying factors such as performance data (musical waveform control information).